/*******************************************************************************
BallEntity.h

	The pong ball!
*******************************************************************************/

#pragma once

#include <cstdlib>
#include <ctime>
#include <string>
#include <cmath>
#include "Entity.h"			// The base class
#include "LevelEntity.h"
#include "EntityResource.h"	// Entity data
#include "Physics.h"		// Physics

class BallEntity: public Entity
{
public:
	/// The type of entity
	static const std::string Type;
	// Sets up the ball entity
	BallEntity(EntityResource& entityData);
	// Updates the ball
	void Update(float fElapsed);
protected:
	// Initializes the ball's direction
	void InitializeDirection(void);
	// The ball's speed
	float m_fSpeed;
	float m_fInitialSpeed;
	float m_fSpeedFactor;
	// The ball's direction
	float m_fXFactor;
	float m_fYFactor;
}; // Ball